home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / program / amos / amoslist.lzh / AMOSLIST / 000337_amos-request@svcs1.digex.net_Tue Sep 26 11:50:33 1995.msg < prev    next >
Internet Message Format  |  1995-10-02  |  4KB

  1. Received: from svcs1.digex.net (svcs1.digex.net [204.91.197.224]) by mail1.access.digex.net (8.6.12/8.6.12) with ESMTP id LAA06755;  for <mcox@access.digex.net> ; Tue, 26 Sep 1995 11:50:32 -0400
  2. Received: (from daemon@localhost) by svcs1.digex.net (8.6.12/8.6.12) id IAA10441 for amos-out; Tue, 26 Sep 1995 08:28:32 -0400
  3. Received: from mail1.access.digex.net (mail1.access.digex.net [205.197.247.2]) by svcs1.digex.net (8.6.12/8.6.12) with ESMTP id IAA10438 for <amos-list@svcs1.digex.net>; Tue, 26 Sep 1995 08:28:31 -0400
  4. Received: from red.paston.co.uk (red.paston.co.uk [194.129.188.3]) by mail1.access.digex.net (8.6.12/8.6.12) with SMTP id IAA13527;  for <amos-list@access.digex.net> ; Tue, 26 Sep 1995 08:28:27 -0400
  5. Received: from bwyatt.paston.co.uk by red.paston.co.uk (5.x/SMI-SVR4)
  6.     id AC03502; Tue, 26 Sep 1995 13:21:07 +0100
  7. Received: by paston.co.uk.uucp (V1.16/Amiga)
  8.     id AA001xk; Tue, 26 Sep 95 17:08:05 GMT
  9. Date: Tue, 26 Sep 95 17:08:05 GMT
  10. Message-Id: <9509261708.AA001xj@paston.co.uk.uucp>
  11. In-Reply-To: <Pine.3.87.9509261038.A7411-0100000@tlti>
  12.              (from Petri Hakkinen <mystic@tlti.tokem.fi>)
  13.              (on Tue, 26 Sep 95 10:59:39)
  14. Lines: 64
  15. X-Mailer: ADMail 1.5 Copyright 1995 S.T.Brown
  16. From: bwyatt@paston.co.uk (Ben Wyatt)
  17. To: amos-list@access.digex.net
  18. Subject: Re: Help me!
  19. Status: RO
  20. X-Status: 
  21.  
  22. Greetings Petri, you wrote some text on the subject Re: Help me!, and now
  23. I'm going to answer it.
  24.  
  25. PH> > M> Unfortunately, becouse of all the structure of the program, the screen is
  26. PH> > M> in
  27. PH> > M> Hi resolution, but you have just to use R/2 in the sin() part.
  28.  
  29. Opps, I missed that bit, but if it's in hires, wouldn't the cos have to be
  30. R/2 or the sin be R*2 ?
  31.  
  32. PH> > M> But the biggest matter is that the 0 degree must be at 12 o'clock, 90
  33. PH> > M> degrees at 3 o'clock and so on in clockwise (instead the trig functions
  34. PH> > M> work
  35. PH> > M> in the other direction.).
  36. PH> > M> Finally, it must be fast enough, even if not just like the Circle command
  37. PH> > M> (or Fcircle by Turbo extension!).
  38. PH> > 
  39. PH> > This should do it:
  40. PH> > 
  41. PH> > Procedure _PART_OF_CIRCLE[R,A,B,X,Y,STP]
  42. PH> >    Gr Locate X+Sin(A)*R,Y-Cos(B)*R
  43. PH> >    For N=A+STP To A+B Step STP
  44. PH> >       Draw To X+Sin(N)*R,Y-Cos(N)*R
  45. PH> >    Next N
  46. PH> > EndProc
  47. PH> 
  48. PH> If you want speed you should put Sin & Cos into arrays. Floating point
  49. PH> calculations are really sssslllooooowwwwww.....
  50. PH> 
  51. PH> Example:
  52. PH> 
  53. PH> dim si(360),co(360)
  54. PH> for t=0 to 360:si(t)=sin(t)*256:co(t)=cos(t)*256:next
  55.  
  56. I usually (virtually always) do
  57.  
  58. PH> and the draw part should be:
  59. PH> Draw To X+(SI(N)*R)/256,Y-(CO(N)*R)/256
  60. PH>                                 
  61. PH> the /256 is done with bitshifting so it don't take much of time,
  62. PH> at least when compiled. Btw. isn't AMCAF's Turbo draw much faster?
  63. PH> If you have AMCAF (or Turbo extension) use it instead of amos!
  64.  
  65. AMCAF can also be used for the precalculated Sines and Cosines (QSin, QCos)
  66. It uses 0-1023 as 0-359 degrees, so triple (approx.) STP.
  67.  
  68. PH> Or even better, you can precalculate Sin(N)*R values with every possible
  69. PH> N and R but it takes lots of memory... If you really want the speed... 
  70.  
  71. Put it in a bank...
  72.  
  73. So, the revised version...
  74.  
  75. Procedure _PART_OF_CIRCLE[R,A,B,X,Y,STP]
  76.    Gr Locate X+QSin(A,R),Y-QCos(B,R/2)
  77.    For N=A+STP To A+B Step STP
  78.       Turbo Draw To X+QSin(N,R),Y-QCos(N,R/2)
  79.    Next N
  80. End Proc
  81.  
  82. Bye  _________________________________
  83.     /                                 \
  84.     > Ben Wyatt - bwyatt@paston.co.uk <
  85.     \_________________________________/ ï¿½1995 Very Interesting Signatures